.TH 9PSERVE 4
.SH NAME
9pserve \- announce and multiplex 9P service
.SH SYNOPSIS
.B 9pserve
[
.B -lnv
]
[
.B -A
.I aname
.I afid
]
[
.B -c
.I addr
]
[
.B -M
.I msize
]
.I addr
.SH DESCRIPTION
On Plan 9, when a user-level file server mounts itself into a name space
or posts itself in 
.BR /srv ,
the Plan 9 kernel multiplexes the potentially many processes 
accessing the server into a single 9P conversation.
The user-level server need not concern itself with how many
processes are accessing it or with cleaning up after a process when it
exits unexpectedly.
On Unix,
.I 9pserve
takes the place of the Plan 9 kernel, multiplexing clients onto
a single server conversation and cleaning up after clients when
they hang up unexpectedly.
.PP
.I 9pserve
announces a 9P service on
.I addr
and multiplexes any 9P clients connecting to
.I addr
into a single conversation with a 9P server on
.IR 9pserve 's
standard input and output.
When a client hangs up, 
.I 9pserve
flushes any outstanding 9P transactions 
and clunks any outstanding fids belonging to the client.
.PP
.I 9pserve
is typically not invoked directly; use
.IR post9pservice (3)
instead.
.PP
The options are:
.TP
.B -l
logging; write a debugging log to
.IB addr .log \fR.
.TP
.B -n
no authentication; respond to Tauth
messages with an error (see 
.IR attach (9P)).
.TP
.B -v
verbose; more verbose when repeated
.TP
.B -A
rewrite all attach messages to use
.I aname
and
.IR afid ;
used to implement
.IR srv (4)'s
.B -a
option
.TP
.B -c
multiplex clients onto a single connection to
.IR addr ,
instead of standard input and output
.TP
.B -M
do not initialize the connection with a
.B Tversion
message;
instead assume 9P2000 and a maximum message size of
.IR msize
.PD
.SH "SEE ALSO
.IR intro (4),
.IR intro (9p),
.IR 9pfuse (4)
.SH SOURCE
.B \*9/src/cmd/9pserve.c
